package com.day240701.listener;

import com.day240701.dao.AdminDao;

import javax.servlet.*;
import javax.servlet.http.*;
import javax.servlet.annotation.*;

@WebListener
public class ApplicationListener implements ServletContextListener{

    public ApplicationListener() {
        System.out.println("调用了 ApplicationListener 的构造器");
    }

    @Override
    public void contextInitialized(ServletContextEvent sce) {
        // 1 从数据库中获取 数据
        AdminDao adminDao = new AdminDao();
        int visitCount = adminDao.getVisitCount();

        // 2 将数据放到 application 对象中
        // 获得 application 对象
        ServletContext application = sce.getServletContext();
        application.setAttribute("webVisitCount", visitCount);

        System.out.println("访问记录获取成功");
    }

    @Override
    public void contextDestroyed(ServletContextEvent sce) {
        // 1 先通过 上下文对象 application 获得 visitCount
        ServletContext application = sce.getServletContext();
        Integer visitCount = (Integer) application.getAttribute("webVisitCount");

        // 2 将访问人数 insert 或 update 到数据库中（设计一张表 访问人数表 就一个字段 人数字段 10）
        AdminDao adminDao = new AdminDao();
        boolean flag = adminDao.saveVisitCount(visitCount);
        if (flag) {
            System.out.println("访问记录保存成功");
        } else {
            System.out.println("访问记录保存失败");
        }
    }
}
